Transaction Repair: Full Serializability Without Locks
نویسنده
چکیده
Transaction Repair is a method for lock-free, scalable transaction processing that achieves full serializability. It demonstrates parallel speedup even in inimical scenarios where all pairs of transactions have significant read-write conflicts. In the transaction repair approach, each transaction runs in complete isolation in a branch of the database; when conflicts occur, we detect and repair them. These repairs are performed efficiently in parallel, and the net effect is that of serial processing. Within transactions, we use no locks. This frees users from the complications and performance hazards of locks, and from the anomalies of sub-serializable isolation levels. Our approach builds on an incrementalized variant of leapfrog triejoin, an algorithm for existential queries that is worst-case optimal for full conjunctive queries, and on well-established techniques from programming languages: declarative languages, purely functional data structures, incremental computation, and fixpoint equations.
منابع مشابه
Partial Strictness in Two-Phase Locking
Two-phase locking is a standard method for managing concurrent transactions in database systems. In order to guarantee good recovery properties, two-phase locking should be strict, meaning that locks can be released only after the transaction's commit or abort. In this paper we show that even exclusive locks can be released immediately after the commit request has arrived, without sacriicing an...
متن کاملUsing Transaction Semantics to Increase Performance
Serializability is the most stringent level of isolation used in transaction processing systems and has been widely accepted as the correctness criterion for concurrently executing transactions. It generally uses a strict two-phase locking protocol, in which locks are held until transactions commit. Unfortunately, this implies that locks might be held for long periods of time, causing performan...
متن کاملPosition Statement to the Panel
Today’s database systems control the execution of concurrent transactions by ensuring the serializability condition. Serializability is easy to understand and allows to reason about a transaction independently of others. The application programmer only needs to specify the statements which constitute a single transaction. However, operations at the system-internal level are synchronized differe...
متن کاملTransactions as the Foundation of a Memory Consistency Model
We argue for transactions as the synchronization primitive of an ordering-based memory consistency model. Rather than define transactions in terms of locks, our model defines locks, conditions, and atomic/volatile variables in terms of transactions. A traditional critical section, in particular, is a region of code, bracketed by transactions, in which certain data have been privatized. Our memo...
متن کاملWebPern: An Extensible Transaction Server for the World Wide Web
Concurrency control is a well-known problem in collaborative hypermedia system design and implementation. Existing systems store data and links in databases (link servers or hyperbases) that have built-in concurrency control polices such as serializability and atomicity, usually implemented using locking. Whereas it is desirable to construct collaborative hypermedia systems on top of the World ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1403.5645 شماره
صفحات -
تاریخ انتشار 2014